package com.hello.system.utils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;

/**
 * 文件服务日志工具类
 * 
 * @author hello
 */
public class FileLogUtils {
    private static final Logger log = LoggerFactory.getLogger(FileLogUtils.class);
    
    /**
     * 记录文件上传开始日志
     * 
     * @param storageType 存储类型
     * @param file 上传文件
     * @param targetLocation 目标位置
     */
    public static void logFileUploadStart(String storageType, MultipartFile file, String targetLocation) {
        log.info("┏━━━━━━━━━━━━━━━ 文件上传开始 ━━━━━━━━━━━━━━━┓");
        log.info("┃ 存储类型: {}", storageType);
        log.info("┃ 文件名称: {}", file.getOriginalFilename());
        log.info("┃ 文件大小: {}KB", file.getSize() / 1024);
        log.info("┃ 存储位置: {}", targetLocation);
        log.info("┃ 内容类型: {}", file.getContentType());
        log.info("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛");
    }
    
    /**
     * 记录文件上传成功日志
     * 
     * @param storageType 存储类型
     * @param fileName 文件名
     * @param fileUrl 文件访问URL
     */
    public static void logFileUploadSuccess(String storageType, String fileName, String fileUrl) {
        log.info("┏━━━━━━━━━━━━━━━ 文件上传成功 ━━━━━━━━━━━━━━━┓");
        log.info("┃ 存储类型: {}", storageType);
        log.info("┃ 文件名称: {}", fileName);
        log.info("┃ 访问地址: {}", fileUrl);
        log.info("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛");
    }
    
    /**
     * 记录文件上传失败日志
     * 
     * @param storageType 存储类型
     * @param fileName 文件名
     * @param errorMsg 错误信息
     */
    public static void logFileUploadError(String storageType, String fileName, String errorMsg) {
        log.error("┏━━━━━━━━━━━━━━━ 文件上传失败 ━━━━━━━━━━━━━━━┓");
        log.error("┃ 存储类型: {}", storageType);
        log.error("┃ 文件名称: {}", fileName);
        log.error("┃ 错误信息: {}", errorMsg);
        log.error("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛");
    }
}
